package cn.itcast.dao.system;

import cn.itcast.domain.system.Role;
import cn.itcast.domain.system.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface UserDao {

	//根据企业id查询全部
	List<User> findAll(String companyId);

	//根据id查询
    User findById(String userId);

	//根据id删除
	void delete(String userId);

	//保存
	void save(User user);

	//更新
	void update(User user);

	//根据用户的id查询用户的角色
    Integer findUserRoleByUserId(String id);

    // 根据用户的id删除用户的所有角色
    void deleteUserRoleByUserId(String userid);

    //给用户重新分配角色
	void addUserRoles(@Param("userid") String userid,@Param("roleIds") String[] roleIds);

	//根据邮箱查找用户
    User findByEmail(String email);

    //通过部门id找出用户
    List<User> findUserByDeptId(String DeptId);

    //根据用户名字去查找用户
    User findByUserName(String userName);

    List<Role> findUserRoleByRoleName(String name, String companyId);
}